package com.shujia.exception_;

import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class ExceptionDemo2 {

    @Test
    public void test2() throws IOException {
        process();
    }

    public void process() throws IOException {

    }


    @Test
    public void test1() {
//        ClassCastException
//        Person person = new Student();
//        Teacher teacher = (Teacher) person;

//        ArrayIndexOutOfBoundsException
//        int[] arr = new int[3];
//        System.out.println(arr[3]);

//        NullPointerException
//        String str = null;
//        System.out.println(str.length());

//        ArithmeticException
//        System.out.println(1/0);

//        NumberFormatException
//        Integer num = Integer.valueOf("abc");
    }


    /*
    main方法 throws 异常, 异常由JVM来处理
     */
    public static void main(String[] args) throws FileNotFoundException, ClassNotFoundException {
//        java.io.IOExeption
//        java.io.FileNotFoundException

        // 在这里调用其他的方法, 被调用的方法throws抛出了异常
        // throws使用场景, 当前方法处理不了这个异常, 交由上级处理
        // 编译时异常的本质, 就是我们调用的JDK的方法throws一些非runtime异常
        InputStream is = new FileInputStream("D:\\aaa.txt");
//        java.lang.ClassNotFoundException
        Class.forName("com.shujia.exception_.ExceptionDemo2");
    }
}
